ndarray数组间的运算
ndarray数组间的运算
数组与数的运算
>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> a + 3
array([[4, 5, 6],
[7, 8, 9]])
>>> a / 2
array([[0.5, 1. , 1.5],
[2. , 2.5, 3. ]])
# python中的列表运算
>>> a = [1, 2, 3]
>>> a * 3
数组与数组的运算
数组进行向量化运算时,需要数组的形状相等,形状不等时,就会出现广播机制,该机制会对数组进行扩展,使数组的shape属性值一样。
广播机制
比如对于一个4行1列和一个1行3列的两个数组相加,会进行如下广播机制后,再进行相加
实现广播机制需要满足以下两个条件中的任意一个即可:
- 两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符
- 或其中一个数组的某一维度为1
广播机制需要扩展维度小的数组,使它与维度最大的数组的shape值相同,以便使用元素级函数或者运算符进行运算